python的for语句结束 您所在的位置:网站首页 python for 循环结束 python的for语句结束

python的for语句结束

2024-07-12 02:33| 来源: 网络整理| 查看: 265

在早期版本的Python中,引入了列表推导的概念来消除这两种代码模式:

# Go through each item in a list and run a test on them

# build a new list containing only items that pass the test

results = []

for item in somelist:

if sometest(item):

results.add(item)

and

# build a new list by changing every item in a list in the

# same way

results = []

for item in somelist:

results.add(2 * item)

通过添加一个新语法,包括将所有三个事物合二为一 – 更改项目和/或测试它们以仅在结果中包含一些项目,并创建结果列表:

results = [2 * item for item in somelist if sometest(item)]

# results is a list

此功能使用[]语法在Python中指示“list”,并在内存中立即构建列表.

有时候你不需要或者不需要内存中建立的整个列表,所以后来的Python版本引入了生成器表达式 – 相同的想法,但它们通过快速返回一个你可以迭代的生成器来节省内存,就像它是一个列表一样,并在您使用它时构建列表.

但它们不能具有相同的语法并且可以直接换出,因为它们的行为略有不同,因此它们使用()代替[],例如:

somelist = [1,2,3,4,5]

results = (2 * item for item in somelist if sometest(item))

# results is a generator

如果您尝试使用此函数调用函数,则会得到两层括号:

function((2 * item for item in somelist))

这看起来很傻,所以你可以留下一个:

function(2 * item for item in somelist)

这似乎是循环独立的循环,但实际上并非如此.

所以用括号你可以这样写:

>>> print (item for item in [1,2,3])

at 0x7fe31b8663c0>

哪个是你写的最接近的东西,它是Python 2.x中的有效语法,但它不能达到预期的效果,^^就是它的作用和原因.

或这个:

>>> print [item for item in [1,2,3]]

[1,2,3]

它生成一个列表并打印列表,另一个与你写的内容相近,但仍然不是你所期望的.

– (在我写这篇文章的时候,我的帖子确实没有太多意义,但是呃).



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有